The present invention relates generally to computer software. More particularly, the present invention relates to an improved apparatus and method for creating diagrams using a computer.
Software for creating diagrams and flowcharts are known in the art. To facilitate discussion of diagram and flowchart software, FIG. 1 illustrates a window showing a flowchart created in accordance with a prior art method. In FIG. 1, there is shown a window having a plurality of drawing tools along its border, including flowchart tool 200. Within the window, a flowchart having three symbols, 202, 204, and 206, is shown. To create the symbols of the flowchart shown in FIG. 1, users typically first select a flowchart tool 200. Upon selection of flowchart tool 200, the screen pointer, i.e., cursor, changes from a pointing mode (e.g., an arrow) to a flowchart mode (e.g., an outline of a bounding box or the ghost image of the first symbol to be created) to indicate that screen pointer manipulations henceforth will be interpreted as commands related to flowcharting.
Next, users may select a particular shape, e.g., rectangle, circle, or the like, from a symbol palette (not shown) to determine the shape of the next symbol to be placed in the window display area. To actually place a new symbol in the window display area, users then move the screen pointer to a desired location and click on a mouse button once to cause a symbol having a selected shape to appear on the display screen.
For discussion purposes, assume for the moment that symbol 202, representing the rounded rectangle in FIG. 1, is the first symbol being placed. Immediately after its creation, symbol 202 becomes the "selected" symbol, i.e., the symbol that is the focus of user operation. To subsequently create diamond symbol 204, users then pick a diamond symbol from the aforementioned symbol palette. The user may then click on a button 208 at the right edge of selected symbol 202 to cause diamond symbol 204 to appear next to the respective button clicked. For example, when button 208 is clicked, a new diamond symbol will appear to the right of button 208. Further, the newly created diamond symbol will have its left comer connected by the prior art flowcharting technique to the right edge of selected symbol 202.
To move the newly created diamond symbol to its final location, i.e., the location of symbol 204 shown in FIG. 1, users may then select the new created diamond symbol 204 and drag it to its final location. Typically, this operation is accomplished by first placing the screen pointer on the newly created diamond symbol, and depressing the mouse button to select it. The user may then drag the mouse while keeping the mouse button depressed to move the newly created symbol to its final location. While diamond symbol 204 is moved, the connector that couples its left comer to the right edge of symbol 202 is kept track of in memory. However, the aforementioned connector is not visually displayed during the move in the prior art. When diamond symbol 204 is released at its final location on the display screen, the connection materializes into connector 212, i.e., becomes visible.
Note that the prior art requires two distinct operations to create a new flowchart symbol: 1) creating a new symbol adjacent to a selected symbol by clicking on a button associated with the selected symbol, and 2) subsequently selecting and dragging the newly created symbol to its final location in the window display screen. Further, the connector between the newly created symbol and the selected symbol is not seen during the drag operation and only materializes in the window display screen once the user releases the newly created symbol at its final location.
To subsequently create circle symbol 206, users then reselect symbol 202 to cause buttons to appear thereon. Users may then select a circle symbol from the above-mentioned symbol palette and click on button 210 at the lower edge of selected symbol 202 to cause a new circle symbol to appear directly below button 210. As before, the prior art method automatically connects the upper edge of the newly created circle symbol to the lower edge of selected symbol 202. To place newly created symbol 206 at its final location in the window display screen of FIG. 1, users may again select the newly created circle symbol and drag it to its final location on the window display area. Again, the connector that couples between the lower edge of symbol 202 and circle symbol 206 is kept track of logically in memory but not visually presented on the screen during the move. Once the user releases the mouse button, circle symbol 206 is placed and the connector between it and symbol 202 materializes.
In the example of FIG. 1, diamond symbol 204 is shown connected to circle symbol 206 via a connector 218. To create connector 218, users in the prior art typically place the screen pointer in the center of one of the symbols to be connected, e.g., diamond symbol 204, and depresses the mouse button therein to change the screen pointer mode to a connecting tool (usually indicated visually as the screen pointer changes shape to a cross-hair). Users may then drag the cross-hair to the second symbol to be connected, e.g., circle symbol 206, and release the mouse button therein to create a connector between the two symbols.
Although the prior art flowchart creation technique represents a useful method for creating drawings, it has been recognized that improvements may be made. For example, the prior art typically defines connection points at fixed locations on a symbol. It has been recognized that users may wish to edit those locations and move connection points to user-selected locations on a symbol. Further, buttons in the prior art, e.g., button 208, include no visual indication of the drawing methodology. By way of example, symbols may be connected to each other by either right angle connectors, i.e., connectors for coupling between objects which is made up of only horizontal and vertical segments such as connector 212, or a straight connector adjoining two symbols along a straight line. In the prior art, if users wish to know which connector methodology is currently in operation, they must perform an independent check by, for example, checking a menu, or making a trial connection to visually determine the currently active connector methodology.
Further, the prior art method of creating connectors between two existing symbols, e.g., by requiring users to mouse down at the center of an existing symbol, invites errors. This is because users in the prior art must be careful in the placement of screen pointers in the first of the two symbols to be connected. By way of example, if a user places the screen pointer closer to the periphery of a symbol than at its center, the drawing mode may change to a moving mode instead of the desired connecting mode (e.g., the screen pointer may change to the shape of a hand instead of a cross-hair) when the mouse button is depressed. When those users drag the screen pointer to another symbol, they may inadvertently move the two symbols closer to one another instead of creating a connector therebetween, which is really the desired effect. Conversely, users may inadvertently create a connector between two symbols when they really intend to move the symbols closer to one another.
In view of the above-mentioned disadvantages, what is desired is an improved apparatus and method for creating diagram symbols and connectors. The improved apparatus and method preferably simplifies the creation and placement of new symbols and connectors. Further, the improved apparatus and method preferably provides improved visual indicators of the active connection methodology to render the diagram creation process more user-friendly, less error-prone, and more intuitive.